package com.wicket.okrbff.biz.service;

import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrframework.integration.FwBasePowerClient;
import com.wicket.okrframework.integration.dto.QueryPowerDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryPowerDetailReqDto;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrframework.integration.dto.QueryTributPowerDeptListRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerDeptListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffDeptDto;
import cn.hutool.core.bean.BeanUtil;
import java.util.stream.Collectors;
import com.wicket.okrframework.integration.dto.AddTributPowerRespDto;
import com.wicket.okrframework.integration.dto.AddTributPowerReqDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerListRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerListReqDto;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComReqDto;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrframework.integration.dto.QueryTributPowerPositionListRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerPositionListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffPositionDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerMemberListRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerMemberListReqDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerRoleListRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerRoleListReqDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerInductionRecordListRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerInductionRecordListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffPerOrgInductionRecordDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerDeptPositionListRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerDeptPositionListReqDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryTributPowerDetailReqDto;
import com.wicket.okrframework.integration.dto.QueryTribuDeptPowerListRespDto;
import com.wicket.okrframework.integration.dto.QueryTribuDeptPowerListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffFrameworkPrivacyDto;
import com.wicket.okrframework.integration.dto.QueryManageDeptListBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryManageDeptListBorderReqDto;
import com.wicket.okrframework.integration.dto.AddManageDeptRespDto;
import com.wicket.okrframework.integration.dto.AddManageDeptReqDto;
import com.wicket.okrframework.integration.dto.ArchiveTribuDeptPowerRespDto;
import com.wicket.okrframework.integration.dto.ArchiveTribuDeptPowerReqDto;
import com.wicket.okrframework.integration.dto.GetUserAllPowerRespDto;
import com.wicket.okrframework.integration.dto.GetUserAllPowerReqDto;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrframework.integration.dto.ArchiveTributPowerRespDto;
import com.wicket.okrframework.integration.dto.ArchiveTributPowerReqDto;
import com.wicket.okrframework.integration.dto.ArchiveTributPowerRedisRespDto;
import com.wicket.okrframework.integration.dto.ArchiveTributPowerRedisReqDto;
import com.wicket.okrframework.integration.dto.DeleteManageDeptRespDto;
import com.wicket.okrframework.integration.dto.DeleteManageDeptReqDto;
import com.wicket.okrframework.integration.FwBaseDivineDataClient;
import com.wicket.okrframework.integration.FwBaseRoleClient;
import com.wicket.okrframework.integration.dto.ImplementReceiveFieldComRespDto;
import com.wicket.okrframework.integration.dto.ImplementReceiveFieldComReqDto;
import com.wicket.okrframework.integration.dto.QueryRoleOfPowerListComRespDto;
import com.wicket.okrframework.integration.dto.QueryRoleOfPowerListComReqDto;
import com.wicket.okrframework.integration.dto.BatchQueryTributPowerComByObjRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryTributPowerComByObjReqDto;
import java.util.ArrayList;
import java.util.List;
import com.wicket.okrframework.integration.dto.QueryOneDeptTributPowerStaffListRespDto;
import com.wicket.okrframework.integration.dto.QueryOneDeptTributPowerStaffListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffOneDeptTributPowerStaffDto;
import com.wicket.okrbff.common.dto.TreeNode;
import com.wicket.okrframework.integration.dto.QueryCurrentStaffRolePowerListRespDto;
import com.wicket.okrframework.integration.dto.QueryCurrentStaffRolePowerListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffPowerCodeListDto;
import com.wicket.okrframework.integration.dto.QueryCurrentUserRecordTributPowerDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryCurrentUserRecordTributPowerDetailComReqDto;
import com.wicket.okrframework.integration.dto.QueryCurrentUserPowerListComRespDto;
import com.wicket.okrframework.integration.dto.QueryCurrentUserPowerListComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
public interface PowerService {
    /**
   * B-检查权限（公共）
   */
    BffCheckPowerComRespDto checkPowerCom(BffCheckPowerComReqDto reqDto);

    /**
   * B1-2新增管理的部门（管理）
   */
    BffAddManageDeptRespDto addManageDept(BffAddManageDeptReqDto reqDto);

    /**
   * B1-2查询管理的部门列表（管理）
   */
    BffQueryManageDeptListRespDto queryManageDeptList(BffQueryManageDeptListReqDto reqDto);

    /**
   * B1-2查询权限分配的角色列表（管理）
   */
    BffQueryTributPowerRoleListRespDto queryTributPowerRoleList(BffQueryTributPowerRoleListReqDto reqDto);

    /**
     * B1-2查询部门管理权限
     */
    BffQueryDeptPowerDetailRespDto queryDeptPowerDetail(BffQueryDeptPowerDetailReqDto reqDto);

    /**
   * B1-存档权限分配（管理）（公共）
   */
    BffArchiveTributPowerComRespDto archiveTributPowerCom(BffArchiveTributPowerComReqDto reqDto);

    /**
   * B1-2存档部门权限分配（管理）
   */
    BffArchiveTribuDeptPowerRespDto archiveTribuDeptPower(BffArchiveTribuDeptPowerReqDto reqDto);

    /**
   * B1-2查询权限分配列表（管理边界）
   */
    BffQueryTributPowerListBorderRespDto queryTributPowerListBorder(BffQueryTributPowerListBorderReqDto reqDto);

    /**
   * B1-2查询分配的部门权限列表（管理）
   */
    BffQueryTribuDeptPowerListRespDto queryTribuDeptPowerList(BffQueryTribuDeptPowerListReqDto reqDto);

    /**
   * B1-2查询权限分配详情(管理)
   */
    BffQueryTributPowerDetailRespDto queryTributPowerDetail(BffQueryTributPowerDetailReqDto reqDto);

    /**
   * B1-2查询权限分配的部门职务列表（管理）
   */
    BffQueryTributPowerDeptPositionListRespDto queryTributPowerDeptPositionList(BffQueryTributPowerDeptPositionListReqDto reqDto);

    /**
   * B1-2查询权限分配的部门成员列表（管理）
   */
    BffQueryTributPowerInductionRecordListRespDto queryTributPowerInductionRecordList(BffQueryTributPowerInductionRecordListReqDto reqDto);

    /**
   * B1-2查询权限分配的员工列表（管理）
   */
    BffQueryTributPowerMemberListRespDto queryTributPowerMemberList(BffQueryTributPowerMemberListReqDto reqDto);

    /**
   * B1-2查询权限分配的职务列表（管理）
   */
    BffQueryTributPowerPositionListRespDto queryTributPowerPositionList(BffQueryTributPowerPositionListReqDto reqDto);

    /**
   * B1-2查询权限分配列表（管理）
   */
    BffQueryTributPowerListRespDto queryTributPowerList(BffQueryTributPowerListReqDto reqDto);

    /**
   * B1-2新增权限分配（管理）
   */
    BffAddTributPowerRespDto addTributPower(BffAddTributPowerReqDto reqDto);

    /**
   * B1-2查询权限分配的部门列表（管理）
   */
    BffQueryDeptTributPowerListRespDto queryDeptTributPowerList(BffQueryDeptTributPowerListReqDto reqDto);

    /**
   * B1-2查询权限详情（管理）
   */
    BffQueryPowerDetailRespDto queryPowerDetail(BffQueryPowerDetailReqDto reqDto);
/**
   * B1-2-14删除管理的部门(管理)
   */
    BffDeleteManageDeptRespDto deleteManageDept(BffDeleteManageDeptReqDto reqDto);
/**
   * B1-2判断权限分配可用
   */
    BffJudgeTributPowerUsableRespDto judgeTributPowerUsable(BffJudgeTributPowerUsableReqDto reqDto);
/**
   * B1查询一级部门下分配权限人员列表(管理)
   */
    BffQueryOneDeptTributPowerStaffListRespDto queryOneDeptTributPowerStaffList(BffQueryOneDeptTributPowerStaffListReqDto reqDto);
/**
   * B1-2查询当前员工角色权限列表
   */
    BffQueryCurrentStaffRolePowerListRespDto queryCurrentStaffRolePowerList(BffQueryCurrentStaffRolePowerListReqDto reqDto);
/**
   * B1查询当前用户就职记录权限
   */
    BffQueryCurrentUserRecordTributPowerDetailRespDto queryCurrentUserRecordTributPowerDetail(BffQueryCurrentUserRecordTributPowerDetailReqDto reqDto);


}
